package dbtools;

/**
 * Title: 查询结果控制辅助类
 * Desc : 提供一些静态方法
 */

import java.util.ArrayList;

public class DataDtoSupclass {

	/**
	 * 得到结果集某一字段 第 n 条记录的值
	 *
	 * @param  (String) numbername 字段名  小写
	 * @param  (int)    recordno  第几条记录  从 0 开始
	 * @return (String) retstr 返回的记录值
	 *
	 */
	public static final String getDataValue(ArrayList arraydata,String name, int recordno) {
		String[] tmparr = (String[])arraydata.get(0);
		int realnum = -1;
		for(int s=0;s<tmparr.length;s++){
			String tmpstr = (String)tmparr[s];
			tmpstr = tmpstr.toLowerCase();
			if(tmpstr.equals(name.toLowerCase())){
				realnum = s;
				break;
			}
		}
		if(realnum>-1){
			tmparr = (String[])arraydata.get(recordno+1);
			String valuestr = tmparr[realnum];
			if(valuestr.endsWith(".000000")&&valuestr.indexOf(":")>0&valuestr.length()>20){
				return valuestr.substring(0,19);
			}
			return valuestr;
		}else{
			return "无此字段别名!";
		}
	}
	/**
	 * 得到结果集第N个字段 第 n 条记录的值
	 *
	 * @param  (int) 第N个字段
	 * @param  (int) recordno  第几条记录  从 0 开始
	 * @return (String) retstr 返回的记录值
	 *
	 */
	public static final String getDataValue(ArrayList arraydata,int fieldno, int recordno) {
		String[] tmparr = (String[])arraydata.get(0);
		tmparr = (String[])arraydata.get(recordno+1);
		String valuestr = tmparr[fieldno];
		if(valuestr.endsWith(".000000")&&valuestr.indexOf(":")>0&valuestr.length()>20){
			return valuestr.substring(0,19);
		}
		return valuestr;
	}
	/**
	 * 给结果集某一字段 第 n 条记录赋值
	 *
	 * @param  (String) numbername 字段名  小写
	 * @param  (int)    recordno  第几条记录  从 0 开始
	 * @param  (String) 新值
	 *
	 */
	public static final ArrayList setDataValue(ArrayList arraydata,String name, int recordno,String newvalue) {

		String[] tmparr = (String[])arraydata.get(0);
		int realnum = -1;
		for(int s=0;s<tmparr.length;s++){
			String tmpstr = (String)tmparr[s];
			tmpstr = tmpstr.toLowerCase();

			if(tmpstr.equals(name.toLowerCase())){
				realnum = s;
				break;
			}
		}
		if(realnum>-1){
			tmparr = (String[])arraydata.get(recordno+1);
			tmparr[realnum] = newvalue;
			arraydata.set(recordno+1,tmparr);
		}
		return arraydata;
	}
	/**
	 * 给结果集某一字段 第 n 条记录赋值
	 *
	 * @param  (int) fieldno   字段顺序，从 0 开始
	 * @param  (int)    recordno  第几条记录  从 0 开始
	 * @param  (String) 新值
	 *
	 */
	public static final ArrayList setDataValue(ArrayList arraydata,int fieldno, int recordno,String newvalue) {
		String[] tmparr = (String[])arraydata.get(0);
		int realnum = 0;
		tmparr = (String[])arraydata.get(recordno+1);
		tmparr[recordno] = newvalue;
		arraydata.set(recordno+1,tmparr);
		return arraydata;
	}

}
